package com.geek.bean;

import lombok.Data;

/**
 * vo → view object 视图对象 和前端进行交互
 */
@Data
public class BaseRespVo<T> {
    T data;
    String errmsg;
    int errno;

    public static <T> BaseRespVo ok(T data) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setData(data);
        baseRespVo.setErrmsg("成功");
        baseRespVo.setErrno(0);
        return baseRespVo;
    }

    public static <T> BaseRespVo ok() {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrmsg("成功");
        return baseRespVo;
    }

    public static BaseRespVo fail(String msg, int errno) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrmsg(msg);
        baseRespVo.setErrno(errno);
        return baseRespVo;
    }

    public static BaseRespVo fail(int errno, String errmsg) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(errno);
        baseRespVo.setErrmsg(errmsg);
        return baseRespVo;
    }

    public static BaseRespVo badArgument() {

        return fail(401, "参数不对");
    }

    public static <T> BaseRespVo unAuthc() {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(502);
        baseRespVo.setErrmsg("认证失败");
        return baseRespVo;
    }

    public static <T> BaseRespVo unAuthc(T data) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setData(data);
        baseRespVo.setErrno(502);
        baseRespVo.setErrmsg("认证失败");
        return baseRespVo;
    }


    public static BaseRespVo badArgument(String field, String message) {

        return fail(401, "," + message);
    }

}
